package one.stand.service;

import com.jmp.base.dto.OrderSaveDto;
import com.jmp.service.crm.dto.OrderPayBackDto;
import com.jmp.service.crm.dto.OrderRefundDto;

import java.util.List;

/**
 * @author Administrator
 */
public interface OrdersService {

    /**
     * 订单支付超时：30分钟
     */
    Integer TIMEOUT = 30;

    /**
     * 保存订单
     */
    List<Integer> save(OrderSaveDto request);

    void cancel(Integer orderId);

    void send(Integer orderId, String deliveryCompany, String deliveryNo);

    void complete(Integer orderId);

    /**
     * 退款（回调）
     */
    String backRefund(String notifyData);

    /**
     * 支付成功
     */
    void payBack(OrderPayBackDto backDto);

    /**
     * 退款成功
     */
    void refundSuccess(OrderRefundDto refundDto);

    /**
     * 提醒发货
     */
    void remindSend(Integer orderId);

    /**
     * 退款申请
     */
    void refundApply(Integer orderId, String refundRemark);

    /**
     * 退款申请取消
     */
    void refundApplyCancel(Integer orderId);

    /**
     * 待付款订单过期处理
     */
    void timeout();
}
